
export const data = [
    {
        id: "1",
        label: "首页",
        children: [
            {
                id: "1-1",
                label: "首页",
                path: "/sheet/Home"
            }
        ]
    },
    {
        id: "2",
        label: "商品管理",
        children: [
            {
                id: "2-1",
                label: "商品列表",
                path: "/sheet/goodslist"
            },
            {
                id: "2-2",
                label: "分类搜索",
                path: "/sheet/searchgoods"
            }
        ]
    },
    {
        id: "3",
        label: "轮播图管理",
        children: [
            {
                id: "3-1",
                label: "轮播图列表",
                path: "/sheet/list",
                children: [
                    {
                        id: "3-1-R",
                        label: "轮播图列表显示"
                    },
                    {
                        id: "3-1-U",
                        label: "修改轮播图状态"
                    },
                    {
                        id: "3-1-D",
                        label: "删除轮播图"
                    }
                ]
            },
            {
                id: "3-2",
                label: "添加轮播图",
                path: "/sheet/add"
            }
        ]
    },
    {
        id: "4",
        label: "操作人员管理",
        children: [
            {
                id: "4-1",
                label: "操作人员列表",
                path: "/sheet/adminlist",
                children: [
                    {
                        id: "4-1-R",
                        label: "操作人员列表显示"
                    },
                    {
                        id: "4-1-U",
                        label: "修改操作人员"
                    },
                    {
                        id: "4-1-D",
                        label: "删除操作人员"
                    }
                ]
            },
            {
                id: "4-2",
                label: "添加操作人员",
                path: "/sheet/addadmin"
            }
        ]
    },
    {
        id: "5",
        label: "购物车管理",
        children: [
            {
                id: "5-1",
                label: "购物车列表",
                path: "/sheet/shopping"
            }
        ]
    },
    {
        id: "6",
        label: "用户信息",
        children: [
            {
                id: "6-1",
                label: "用户列表",
                path: "/sheet/userlist"
            }
        ]
    },
    {
        id: "7",
        label: "订单信息",
        children: [
            {
                id: "7-1",
                label: "订单列表",
                path: "/sheet/Order"
            }
        ]
    },
    {
        id: "8",
        label: "数据图表",
        children: [
            {
                id: "8-1",
                label: "简单K线图",
                path: "/sheet/ChartKLine"
            },
            {
                id: "8-2",
                label: "简单图表数据",
                path: "/sheet/ChartData"
            }
        ]
    },
   
]

// 根据当前用户的权限，产生相应的菜单
export default function getMenus() {
    // 1.获取该用户的权限
    let checkedKeys: string[] = []

    // 定义获取当前的权限值
    let currentKeys = sessionStorage.getItem("grants")

    if (currentKeys) {
        checkedKeys = JSON.parse(currentKeys)
    }

    // 若没有权限的(admin)都显示
    if (checkedKeys.length === 0) {
        checkedKeys = ['1', '1-1', '2', '2-1', '2-2','3', '3-1', '3-2','4','4-1', '4-1-R', '4-1-U', '4-1-D', '4-2', '5', '5-1', '6', '6-1', '7', '7-1', '8', '8-1', '8-2']
    }

    // 2.根据用户权限产生用户对应的菜单
    interface IMenuItem {
        id: string,
        label: string,
        path?: string,
        children?: IMenuItem[]
    }

    // 存储当前用户的菜单项
    let currentMenuData: IMenuItem[] = [];

    // 遍历菜单
    data.forEach(item => {
        // 如果存在该id项
        if (checkedKeys.indexOf(item.id) > -1) {
            // 定义一个菜单项存储获得的父级信息
            const newMenuItem = { ...item }

            // 再判断有没有子一级
            if (item.children) {
                // 先将获得的父级的子一级置空
                newMenuItem.children = []

                // 遍历子一级菜单
                item.children.forEach(sonItem => {
                    // 存在子一级的id
                    if (checkedKeys.indexOf(sonItem.id) > -1) {
                        // 将获得的子一级存到父级置空的数组里
                        newMenuItem.children?.push({ ...sonItem })
                    }
                })
            }

            // 存储获取的菜单项
            currentMenuData.push(newMenuItem)
        }
    })
    console.log("currMenuData", currentMenuData)
    return currentMenuData
}   